// pages/search/search.js
Page({
  goto: function () {
    console.log('1111');
    wx.navigateBack({
      delta: 1
    })
  },
  /**
   * 页面的初始数据
   */
  data: {
    // 用于存储搜索原始结果
    flowerlist: [],
    // 过滤后的数据
    filteredFlowerlist: [],
    hotlist: [],
    hotlistTop3: [],
    hotlistRest: [],
    // 新增历史记录
    historyList: [],
    // 新增输入框的值
    inputValue: '',
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 传递集合名称 'flowers'
    this.fetchData('flowerlist2');
    this.hotData('hot');
    // 从本地存储恢复历史记录
    const historyList = wx.getStorageSync('historyList') || [];
    this.setData({
      historyList: historyList.slice(-10)
    });
  },
  // 获取指定集合的数据
  fetchData: function (collectionName) {
    const db = wx.cloud.database();
    db.collection(collectionName).get({
      success: res => {
        console.log(`${collectionName} 数据获取成功`, res.data);
        if (collectionName === 'flowerlist2') {
          this.setData({
            flowerlist: res.data[0].flowers
          });
        } else if (collectionName === 'hot') {
          const hotlist = res.data[0].hotSearches || []
          this.setData({
            hotlist: hotlist,
            hotlistTop3: hotlist.slice(0, 3),
            hotlistRest: hotlist.slice(3)
          });
        }
      },
      fail: err => {
        console.error(`${collectionName} 数据获取失败`, err);
      }
    });
  },

  // 获取热门花
  hotData: function () {
    this.fetchData('hot'); // 调用 fetchData 方法并传递集合名称 'hot'
  },
  // 输入框回车事件
  inputEnter: function (e) {
    const value = e.detail.value.trim();
    if (value) {
      // 检查是否已经存在该历史记录，避免重复
      let historyList = this.data.historyList.filter(item => item !== value);

      // 将新记录添加到数组的开头
      historyList.unshift(value);

      // 限制历史记录最多十条
      if (historyList.length > 10) {
        historyList.pop(); // 删除最后一条记录
      }

      // 更新数据并保存到本地存储
      this.setData({
        historyList: historyList
      }, () => {
        wx.setStorageSync('historyList', this.data.historyList);
      });
      // 清空输入框
      this.setData({
        inputValue: ''
      });
      // 过滤 flowerlist，匹配输入框的值
      const filteredFlowerlist = this.data.flowerlist.filter(item => {
        // 假设 flowerlist 中的每一项有一个 name 字段
        return (
          item.name.includes(value) ||
          item.color.includes(value) ||
          item.tag.includes(value) ||
          item.price.includes(value)
        );
      });

      // 更新过滤后的数据
      this.setData({
        filteredFlowerlist: filteredFlowerlist // 将过滤后的数据存储到 filteredFlowerlist
      });
    }
  },
  // 处理点击历史记录
  selectHistory: function (e) {
    const value = e.currentTarget.dataset.value;
  this.triggerSearch(value);
  },
  // 处理点击热门搜索
  selectHot: function (e) {
    const value = e.currentTarget.dataset.name;
  this.triggerSearch(value);
  },
  // 清空历史记录
  clearHistory: function () {
    wx.showModal({
      title: '提示',
      content: '确定要清空历史记录吗？',
      success: res => {
        if (res.confirm) {
          this.setData({
            historyList: []
          }, () => {
            wx.setStorageSync('historyList', this.data.historyList);
          });
        }
      }
    });
  },
  // 触发搜索的通用函数
triggerSearch: function (value) {
  if (!this.data.historyList.includes(value)) { // 判断历史记录中是否已存在该值
    let historyList = this.data.historyList;
    historyList.unshift(value); // 将新记录添加到数组的开头
    if (historyList.length > 10) {
      historyList.pop(); // 删除最后一条记录
    }
    this.setData({
      historyList: historyList
    }, () => {
      wx.setStorageSync('historyList', this.data.historyList);
    });
  }
  // 设置输入框的值并触发过滤
  this.setData({
    inputValue: value
  }, () => {
    this.inputEnter({ detail: { value: value } }); // 调用输入框回车事件的处理函数进行过滤
  });
},
  // 删除单条历史记录
  deleteHistoryItem: function (e) {
    const index = e.currentTarget.dataset.index; // 获取要删除的记录的索引
    let historyList = this.data.historyList;

    // 删除指定索引的记录
    historyList.splice(index, 1);

    // 更新数据并保存到本地存储
    this.setData({
      historyList: historyList
    }, () => {
      wx.setStorageSync('historyList', this.data.historyList);
    });
  },
    searchitem(e){
      console.log(e);
      const item = e.currentTarget.dataset.item
        // 假设 flower 组件传递了一个参数，比如花的 id
    // const flowerId = event.currentTarget.dataset.id;
    const encodedflower = encodeURIComponent(JSON.stringify(item));
    wx.navigateTo({
      url: `/pages/details/details?payload=${encodedflower}`,
    })
},
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})